home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-ietf-x400ops-mhs-service-04.txt < prev    next >
Text File  |  1993-03-03  |  67KB  |  1,740 lines

  1. RARE WG-MSG                                            Urs Eppenberger
  2. Internet Draft                                                  SWITCH
  3.                                                          February 1992
  4.                                                   Expires: August 1993
  5.  
  6.               Routing coordination for X.400 MHS services
  7.          within a  multi protocol / multi network environment
  8.                   Table Format V3 for static routing
  9.  
  10.  
  11. Status of this Memo
  12.     
  13.     This document is an Internet Draft.  Internet Drafts are working
  14.   documents of the Internet Engineering Task Force (IETF), its Areas,
  15.   and its Working Groups.  Note that other groups may also distribute
  16.   working documents as Internet Drafts).
  17.     
  18.     Internet Drafts are draft documents valid for a maximum of six
  19.   months.  Internet Drafts may be updated, replaced, or obsoleted by
  20.   other documents at any time.  It is not appropriate to use Internet
  21.   Drafts as reference material or to cite them other than as a
  22.   "working draft" or "work in progress."
  23.     
  24.     Please check the I-D abstract listing contained in each Internet
  25.   Draft directory to learn the current status of this or any other
  26.   Internet Draft.
  27.     
  28.     It is intended that this document will be submitted to the IESG
  29.   for consideration as a prototype standard.  Distribution of this
  30.   document is unlimited.  Comments to the document may be sent to the
  31.   distribution list wg-msg@rare.nl of the RARE Working Group on Mail
  32.   and Messaging.
  33.  
  34.  
  35. 1 Abstract
  36.     
  37.     The usage of the X.400 Message Handling System (MHS) is growing
  38.   rapidly, especially in the commercial world but much interest can
  39.   also be found in the academic and research community.  New networks
  40.   and new addresses come into use each and every day.  The underlying
  41.   technology for different X.400 networks can vary depending on the
  42.   transport network and the X.400 MHS implementations used.  As a
  43.   large number of X.400 implementations now support multiple stacks,
  44.   this offers the chance of implementing a world wide message handling
  45.   service using the same electronic mail standard and, therefore,
  46.   without the need of gateways with service reduction and without the
  47.   restriction to a single common transport network.  This, however,
  48.   leads to several problems for the MHS manager, two of which are:
  49.   
  50.   - Where do I route new X.400 addresses and
  51.   
  52.   - How do I connect to a MHS domain that uses an underlying
  53.     technology that I do not support.
  54.     
  55.  
  56.  
  57. Eppenberger                           Expires: August 1993   [Page  1]
  58.  
  59. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  60.  
  61.  
  62.     This document proposes short term solutions to these problems.  It
  63.   proposes a strategy for maintaining and distributing routing
  64.   information and shows how messages can travel over different
  65.   networks by using multi stack MTAs as relays.  Document formats and
  66.   coordination procedures bridge the gap until an X.500 directory
  67.   service is ready to store the needed connectivity and routing
  68.   information.  The format has been designed to allow the information
  69.   to be stored in an X.500 directory service while managers without
  70.   directory service access may still use a table based approach.
  71.     
  72.     The routing structure proposed can be applied to a global MHS
  73.   service but may also be used at a national level or even within an
  74.   organisation.
  75.     
  76.     Many experts from IETF X.400-Operations Group and RARE Working
  77.   Group 1 on Message Handling Systems have read drafts of this
  78.   document and contributed ideas and solutions.  I would especially
  79.   like to thank Harald Alvestrand, Erik Huizer, Marko Kaittola, Allan
  80.   Cargille and Paul-Andre Pays.
  81.     
  82.     This is the third version of a table format.  The first one was in
  83.   use within COSINE-MHS for about two years.  A second version with
  84.   major enhancements was then proposed which has been in use for the
  85.   past year.  The third version will probably be the last one before
  86.   it will be possible to switch to dynamic, directory service based
  87.   routing.
  88.  
  89.  
  90. 2 Terminology
  91.   
  92.   
  93.   MHS community
  94.       
  95.       One or more MHS domains form an MHS community.  Mail exchange
  96.     between these MHS domains is defined by the coordination
  97.     procedures within this document.  Examples of such communities are
  98.     the Global Open MHS service GO-MHS and the COSINE-MHS service.
  99.   
  100.   
  101.   MHS domain
  102.       
  103.       One or more MHS subtrees form an MHS domain.  This is a purely
  104.     administrative grouping of MHS subtrees.  It is helpful, if
  105.     someone is responsible for several MHS subtrees, to refer to an
  106.     MHS domain instead of listing all the subtrees.
  107.   
  108.   
  109.   MHS subtree
  110.       
  111.       An MHS subtree consists of the total of the mailboxes
  112.     addressable within a subtree of the X.400 OR address space.
  113.  
  114.  
  115. Eppenberger                           Expires: August 1993   [Page  2]
  116.  
  117. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  118.  
  119.  
  120.         
  121.         Example:  O=SWITCH; P=SWITCH; A=ARCOM; C=CH;
  122.         
  123.         MHS domain of SWITCH in Switzerland, consisting of all
  124.         mailboxes with O=SWITCH; P=SWITCH; A=ARCOM; C=CH; in the OR
  125.         address.
  126.   
  127.   
  128.   RELAY
  129.       
  130.       An X.400 MTA serving one or several MHS domains.  Note that the
  131.     term WEP -Well Known Entry Point- has been used since the early
  132.     X.400ies (1987/88) until now, giving the wrong impression of a
  133.     single entry point (and therefore a single point of failure).
  134.     This document proposes to use the term RELAY, reflecting more
  135.     clearly the functionality of the MTA.
  136.   
  137.   
  138.   COSINE-MHS
  139.       
  140.       The COSINE-MHS community is mainly formed by European X.400
  141.     service providers from the academic and research area, each of
  142.     which is a member of RARE.  The COSINE-MHS community is used in
  143.     the annex as an example for the usage of this document in a
  144.     multinational environment.
  145.  
  146.  
  147. 3 Requirements
  148.     
  149.     X.400 MTAs can communicate using different transport and network
  150.   protocol stacks.  For this document the stacks used in a WAN
  151.   environment need to be considered:
  152.       
  153.                            Stack 1    Stack 2    Stack 3    Stack 4
  154.       
  155.       Transport Layer 4    TP0        TP4        RFC1006    TP0
  156.       Networkservice 1-3   X.25       CLNS       TCP/IP     CONS
  157.     
  158.     A common protocol stack is not the only requirement to enable
  159.   communication between two MTAs.  The networks to which the MTAs
  160.   belong need to be interconnected.  Some well known networks are
  161.   listed together with the stacks they use.
  162.       
  163.       Network                                Stack   Abbreviation
  164.       
  165.       Public Switched Packet Data Networks     1     Public-X.25
  166.       International X.25 Infrastructure EMPB   1,4   EMPB-X.25
  167.       US and European connectionless pilot     2     Int-CLNS
  168.       Internet                                 2,3   Internet
  169.     
  170.     Note that several stacks may be supported over a single network.
  171.  
  172.  
  173. Eppenberger                           Expires: August 1993   [Page  3]
  174.  
  175. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  176.  
  177.  
  178.   However communication between MTAs is only possible if the MTAs
  179.   share at least a common stack AND a common network.
  180.     
  181.     Unlike SMTP/TCP/IP systems, there is no directory service
  182.   available which would allow an MTA to look up the next MTA to which
  183.   it should submit a message.  Routing within X.400 will continue to
  184.   be table based until a solution using X.500 directory services is
  185.   available.
  186.     
  187.     Furthermore it is not generally allowed to connect to any MTA even
  188.   on the same network without being registered on the destination MTA.
  189.   These restrictions require a large coordination effort and carefully
  190.   configured and updated systems.
  191.  
  192.  
  193. 4 Outline of the proposal
  194.     
  195.     This proposal offers a solution for describing information about
  196.   X.400 message routing within an MHS community in RELAY and DOMAIN
  197.   documents.  Basic information on the MHS community is documented in
  198.   the corresponding COMMUNITY document.  All contact persons and RELAY
  199.   administrators can be found in PERSON documents.  A future X.500
  200.   based solution may need extended information to overcome still
  201.   unsolved problems like optimal routing or traffic optimization for
  202.   messages with multiple recipients.  The information collected for
  203.   the intermediate solution however is very basic.  All established
  204.   coordination procedures will help and even speed up the future
  205.   introduction of an X.500 based solution.
  206.   
  207.   
  208.   4.1 The COMMUNITY document
  209.       
  210.       For each MHS community there exists one single COMMUNITY
  211.     document containing basic information.  First the contact
  212.     information for the central coordination point can be found
  213.     together with the addresses for the file server where all the
  214.     documents are stored.  It also lists network names and stacks to
  215.     be used in the RELAY and DOMAIN documents.  An MHS community must
  216.     agree on its own set of mandatory and optional networks and
  217.     stacks.
  218.   
  219.   
  220.   4.2 The RELAY document
  221.       
  222.       Every MHS domain in the community may designate one or more MTAs
  223.     as RELAYs.  These RELAYs accept incoming connections from the
  224.     RELAYs of the other MHS domains and in return are allowed to send
  225.     messages to these RELAYs.  A RELAY is documented with all the
  226.     necessary connection information in the corresponding RELAY
  227.     document.
  228.   
  229.  
  230.  
  231. Eppenberger                           Expires: August 1993   [Page  4]
  232.  
  233. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  234.  
  235.  
  236.   4.3 The DOMAIN document
  237.       
  238.       An MHS domain has a responsible person who sets up the routing
  239.     entries for the domain in the DOMAIN document.  The primary RELAYs
  240.     listed in the DOMAIN document as serving this MHS domain must,
  241.     TOGETHER, offer at least connectivity to all networks and stacks
  242.     listed as mandatory in the COMMUNITY document.  Optional RELAYs
  243.     may be added, generally with higher priority, to allow more
  244.     precise routing.
  245.       
  246.       An MHS domain may also decide not to operate a RELAY.  It will
  247.     then only need agreements with one or more RELAYs from other MHS
  248.     services which will relay for this domain.  The domain itself,
  249.     however, must either create its own DOMAIN document or document
  250.     its MHS subtrees jointly with another MHS domain.
  251.       
  252.       The structure of the DOMAIN document is very straightforward.
  253.     It starts off with one or more MHS subtrees, each on its own line.
  254.     After the domains follows a line indicating the responsible person
  255.     for the MHS subtrees mentioned.  Finally the responsible RELAY(s)
  256.     are listed with appropriate priorities.
  257.   
  258.   
  259.   4.4 The PERSON document
  260.       
  261.       All administrators and responsible persons are documented in
  262.     PERSON documents.  The COMMUNITY, RELAY and DOMAIN documents
  263.     contain just keys pointing to a PERSON document.  If such a person
  264.     can already be found in an X.500 directory service, then the key
  265.     consists of a Distinguished Name, else the key is just its OR
  266.     address.
  267.   
  268.   
  269.   4.5 Coordination
  270.       
  271.       This approach requires an identified coordination point.  It is
  272.     up to the MHS community to decide on the level of coordination and
  273.     support to be provided and on the funding mechanisms for such
  274.     activities.  Basic information can be found in the COMMUNITY
  275.     document.  The following list of support activities is considered
  276.     mandatory for an operational service:
  277.     
  278.     - New RELAYs joining the service are tested and support is given
  279.       to create the RELAY document.
  280.     
  281.     - New MHS domains joining the MHS community get assistance to set
  282.       up RELAY(s) and/or find appropriate RELAY(s) and to create
  283.       DOMAIN documents.
  284.     
  285.     - Updated documents are announced to the RELAY managers and
  286.       responsible persons for the DOMAIN documents unless automatic
  287.  
  288.  
  289. Eppenberger                           Expires: August 1993   [Page  5]
  290.  
  291. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  292.  
  293.  
  294.       distribution is used.
  295.     
  296.     - All the RELAY, DOMAIN and PERSON documents are made available on
  297.       a file server together with the COMMUNITY document.  The file
  298.       server must at least be reachable via email.  MHS communities
  299.       with a big number of documents may consider additional access
  300.       methods like ftp and FTAM.
  301.     
  302.     - Tools should be made available to manage routing tables for the
  303.       X.400 software used on the RELAYs or to fill in and check the
  304.       documents.  The format of the documents has specifically been
  305.       chosen to enable the use of automated tools.
  306.       
  307.       The RELAY managers must be aware that a large number of RELAYs
  308.     in an MHS community may require significant operational resources
  309.     to keep the local routing tables up-to-date and to constantly
  310.     monitor the correct functioning of the connections.  On the other
  311.     hand more than one RELAY with a good connectivity to an MHS domain
  312.     improves the overall robustness of the domain and thus the QOS.
  313.       
  314.       MHS communities may decide on additional mandatory requirements
  315.     for the operation of a RELAY.  These may include a hot line, echo
  316.     services, exchange of statistics, response time to problem
  317.     reports, uptime of the RELAY, etc.  This will ensure a certain
  318.     quality of service for the end users.
  319.   
  320.   
  321.   4.6 Routing
  322.       
  323.       The proposal addresses MHS communities spanning several
  324.     organisations.  But it may also be used to manage routing within a
  325.     single organisation or even a global MHS community.
  326.       
  327.       Two kinds of mail relays are defined, the primary RELAYs and the
  328.     secondary RELAYs.  A primary or secondary RELAY must allow
  329.     incoming connections from all other primary and secondary RELAYs
  330.     with a common stack.  Primary RELAYs must be able to connect to
  331.     all other primary RELAYs which share a common stack.  A secondary
  332.     RELAY must connect to at least one primary RELAY.
  333.       
  334.       Each MHS community must define update procedures for the routing
  335.     based on the documentation.  Automated update has to be studied
  336.     carefully.
  337.       
  338.       An MHS community should also define procedures for new RELAYs
  339.     and MHS domains joining the service.  Since the usage of X.400 is
  340.     growing rapidly a flexible but well coordinated way of integrating
  341.     new members into an MHS community is needed.  The proposed
  342.     documentation format supports this by allowing primary and
  343.     secondary RELAYs.  All RELAYs accept incoming connections from
  344.     each other.  Sending messages can be done by using the primary
  345.  
  346.  
  347. Eppenberger                           Expires: August 1993   [Page  6]
  348.  
  349. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  350.  
  351.  
  352.     RELAYs only.  This allows new RELAYs to join the community as
  353.     secondary and to get primary status when traffic flow increases.
  354.     Secondary RELAYs may also require a longer testing period.
  355.  
  356.  
  357. 5 The documents
  358.     
  359.     The definition is given in BNF-like syntax.  The following
  360.   conventions are used:
  361.     
  362.     |    means choice
  363.     
  364.     \    is used for continuation of a definition over several lines
  365.     
  366.     []   means optional
  367.     
  368.     {}   means repeated one or more times
  369.     
  370.     ()   is used to group choices
  371.     
  372.     \"   is used for double quotes in a text string
  373.     
  374.     <CR> is a Carriage Return and means that the next section starts
  375.          on its own line.
  376.       
  377.       The definition is complete only to a certain level of detail.
  378.     Below this level, all expressions are to be replaced with text
  379.     strings.  Expressions without more detailed definition are marked
  380.     with single quotes '.  The format and semantics should be clear
  381.     from the names of the expressions and the comments given.
  382.       
  383.       Wherever the BNF definition requires a single blank, multiple
  384.     blanks may be used to increase the readability.  Please note that
  385.     for some field values the number of spaces is significant.
  386.       
  387.       Lines exceeding 80 characters should be wrapped at any
  388.     convenient blank except at blanks which are significant.  The line
  389.     is continued with at least one trailing blank.
  390.       
  391.       Comments may be placed anywhere in the document but only on
  392.     separate lines and without splitting wrapped lines.  Such a
  393.     comment line must either start with a '#' sign followed by white
  394.     space and the comment or consist of a single '#' on a single line.
  395.       
  396.       Some field values are case sensitive (TSEL, Password).  In order
  397.     to handle this issue in a consistent way all keys and values must
  398.     use the same case as the BNF definitions.
  399.       
  400.       The BNF definitions are ordered top-down.  See Appendix B for an
  401.     alphabetically sorted list.
  402.       
  403.  
  404.  
  405. Eppenberger                           Expires: August 1993   [Page  7]
  406.  
  407. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  408.  
  409.  
  410.       A set of one COMMUNITY document and several RELAY, DOMAIN and
  411.     PERSON documents belong together.  The detailed definitions can be
  412.     found in the following chapters.
  413.       
  414.       <X.400 routing coordination document set> ::= \
  415.                             <COMMUNITY-document> \
  416.                             { <RELAY-document> } \
  417.                             { <DOMAIN-document> } \
  418.                             { <PERSON-document> }
  419.   
  420.   
  421.   5.1 Common Definitions
  422.       
  423.       <DirectoryName> ::= 'Distinguished Name'
  424.                 The string representation of a Distinguished Name is
  425.                 defined in the IETF OSI-DS document 23.  If a
  426.                 Distinguished Name is used as a key in the documents,
  427.                 then the information can be fetched from the directory
  428.                 instead of checking the appropriate document.  But as
  429.                 long as not all managers in the same community have
  430.                 directory access, the same information must also be
  431.                 present in a document.  Note that Distinguished Names
  432.                 in the context of the routing documents are just used
  433.                 as key strings to point to other documents.
  434.       
  435.       <Community-Identifier> ::= "Community: " \
  436.                             ('community name' | <DirectoryName>) <CR>
  437.                 The 'community name' is a string identifying the MHS
  438.                 community to be used in the first line of all
  439.                 documents.
  440.       
  441.       <UniqueRELAYkey> ::= (([ "P=" 'PRMDname' "; " ] \
  442.                             ["A=" 'ADMDname' "; " ] \
  443.                             "C=" <Country-Code> "; " \
  444.                             "MTAname=" 'MTAname')
  445.                             | <DirectoryName> )
  446.                 A unique key is needed to identify the RELAY.  In
  447.                 addition to the MTA name itself, it is proposed to use
  448.                 OR address attributes of the management domain where
  449.                 the RELAY resides.  ADMD and PRMD fields are both
  450.                 optional and may be used to guarantee uniqueness of the
  451.                 key.  The values used are irrelevant.  Even non-
  452.                 printable characters like @ or ! are acceptable.  The
  453.                 result is not an address but a key string.  A
  454.                 Distinguished Name may be used instead.
  455.       
  456.       <UniquePersonKey> ::= (<X.400 address> | <DirectoryName> )
  457.                 A unique key is necessary to make the links from the
  458.                 documents where a responsible person or an
  459.                 administrator is needed, to the PERSON documents.  It
  460.                 is either the OR address of the person or a
  461.  
  462.  
  463. Eppenberger                           Expires: August 1993   [Page  8]
  464.  
  465. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  466.  
  467.  
  468.                 Distinguished Name (if the person is already registered
  469.                 in the directory).
  470.       
  471.       <Country-Code> ::= 'Two Character Country Code ISO-3166'
  472.       
  473.       <X.400 address> ::= 'OR address, ISO 10021-2 Annex F'
  474.                 It has been used consequently all over the document.
  475.                 This explains also the syntax of the <UniqueRELAYkey>
  476.                 and the <MHS-subtree>. Examples:
  477.                 S=user; O=org ltd.; OU1=sect1; P=org; A=rel400; C=aq;
  478.                 DDA:RFC-822=we(a)sell.it; P=internet; A= ; C=xx;
  479.                 G=john; I=w; S=doe; P=org; A=rel400; C=aq;
  480.       
  481.       <EMail> ::= "Address: " <X.400 address> <CR>
  482.       
  483.       <tel-no-list> ::= <tel-number> [{"; " <tel-number>}]
  484.       
  485.       <tel-number> ::=  {"+" <int-pref> " " <national number> \
  486.                             [" x" <extension>]}
  487.                 This syntax follows the attribute syntax of the X.500
  488.                 directory based on CCITT E.123.
  489.       
  490.       <int-pref> ::= 'international prefix'
  491.       
  492.       <national number> ::= 'national telephone number'
  493.                 A national number may be written with spaces and
  494.                 hyphens to group the figures.
  495.       
  496.       <extension> ::= 'local extension'
  497.       
  498.       <Phone> ::= "Phone: " <tel-no-list> <CR>
  499.                 One or more phone numbers
  500.       
  501.       <Fax> ::= "Fax: " <tel-no-list> <CR>
  502.                 One or more FAX numbers
  503.       
  504.       <Mail> ::= "Mail: " 'postal address information' <CR>
  505.                 The items of the postal address are separated by ' / '
  506.                 wherever the next item goes onto the next line for a
  507.                 printed address label.  If the document is for an
  508.                 international community, the address should include the
  509.                 person's country.
  510.                 Example:
  511.                 Mail: SWITCH Head Office / Urs Eppenberger /
  512.                       Limmatquai 138 / CH-8001 Zurich / Switzerland
  513.                 results in the following mailing label:
  514.                 SWITCH Head Office
  515.                 Urs Eppenberger
  516.                 Limmatquai 138
  517.                 CH-8001 Zurich
  518.                 Switzerland
  519.  
  520.  
  521. Eppenberger                           Expires: August 1993   [Page  9]
  522.  
  523. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  524.  
  525.  
  526.       <Update-info> ::= "Update: FORMAT=V3; DATE=" 'yymmdd' \
  527.                             "; START=" 'yymmdd' \
  528.                             ["; END=" 'yymmdd'] <CR>
  529.                 The <Update-info> contains also the format identifier.
  530.                 The date of the last update of a document is given in
  531.                 the form 'yymmdd'.
  532.                 A start date must be set.  A document can be published
  533.                 this way before the information in it is valid.  (This
  534.                 is especially useful in absence of automated tools.
  535.                 RELAY managers get more time to prepare their systems.)
  536.                 An end date is used to set an expiration date for the
  537.                 document.
  538.       
  539.       <P-address> ::= 'String encoded Presentation Address'
  540.                 The format of this string follows RFC1278, A string
  541.                 encoding of Presentation Address and RFC1277, Encoding
  542.                 Network Addresses to support operation over non-OSI
  543.                 layers.  See chapter 5.2 about the usage of macros in a
  544.                 Presentation Address.
  545.       
  546.       <Service-type> ::= <Network-name> "/" \
  547.                             <Network-service> "/" \
  548.                             <Transport-Protocol>
  549.                 The service type consists of a string with three parts
  550.                 concatenated with a "/": Network-name/Network-
  551.                 service/Transport-Protocol.
  552.       
  553.       <Network-name> ::= 'Name of a network'
  554.                 The network-name string identifies a network.  A well
  555.                 known key word should be chosen.  (No '/' character is
  556.                 allowed.)
  557.                 Examples: Public-X.25, Internet, EMPB-X.25, Int-CLNS,
  558.                 WIN, Janet,
  559.       
  560.       <Network-service> ::= 'Name of a network service'
  561.                 Examples: X.25, CONS, CLNS, TCP
  562.       
  563.       <Transport-Protocol> ::= 'Name of a transport protocol'
  564.                 Examples: TP0, TP2, TP4, RFC1006
  565.                 
  566.                 Since network and stack information forms one string,
  567.                 it identifies in an easy way a connection possibility
  568.                 between two RELAYs.  The COMMUNITY document defines the
  569.                 strings to be used in the RELAY and DOMAIN documents.
  570.                 Some examples:
  571.                 Internet/TCP/RFC1006
  572.                 Public-X.25/X.25/TP0
  573.                 RARE-IXI/CONS/TP0
  574.                 RARE-CLNS/CLNS/TP4
  575.                 (It is probably important to mention here that this
  576.                 string has nothing to do with the format of a
  577.  
  578.  
  579. Eppenberger                           Expires: August 1993   [Page 10]
  580.  
  581. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  582.  
  583.  
  584.                 presentation address as defined by Steve Hardcastle-
  585.                 Kille in RFC1278.  The problem of networks using the
  586.                 same address structure (X.121 DTEs, 4 Byte Internet
  587.                 addresses) but not being connected is not addressed in
  588.                 RFC1278 but solved by using the proposed service
  589.                 identifier above in addition to the presentation
  590.                 address.  As long as there are network islands, there
  591.                 is no other way than the addition of an 'island'-
  592.                 identifier.
  593.       
  594.       <MHS-subtree> ::= ["O=" 'Organization-name' "; "] \
  595.                             [[[["OU1="'OrganizationalUnit-name'"; "]\
  596.                             "OU2=" 'OrganizationalUnit-name' "; "] \
  597.                             "OU3=" 'OrganizationalUnit-name' "; "] \
  598.                             "OU4=" 'OrganizationalUnit-name' "; "] \
  599.                             ["P=" 'PRMDname' "; "] \
  600.                             "A=" 'ADMDname' "; " \
  601.                             "C=" <Country-Code> ";"
  602.       
  603.       <Operation> ::= "Reachable: "  {<time> "-" <time> "; "} \
  604.                             <Time-zone>
  605.       
  606.       <time> ::= 'hh:mm'
  607.       
  608.       <Time-zone> ::= ("UTC+" | "UTC-") 'hours'
  609.                 The operation information is needed to know the time
  610.                 someone is reachable.  This information is important
  611.                 for communities spanning several time zones.
  612.                 Use "UTC+" for time zones east of Greenwich.  A simple
  613.                 formula helps to calculate the current time at the
  614.                 remote place:
  615.                 local-time - local-displacement + remote-displacement =
  616.                 remote-time
  617.                 18:00 - (UTC + 1) + (UTC - 8) = 09:00
  618.                 The <Time-zone> entry may be followed by a comment line
  619.                 indicating when Daylight Saving Time is in effect.
  620.                 This is especially reasonable for MHS communities
  621.                 spanning continents on the northern and southern
  622.                 hemisphere.
  623.   
  624.   
  625.   5.2 The COMMUNITY document
  626.       
  627.       <COMMUNITY-document> ::= <Community-Identifier> \
  628.                             <Update-info> \
  629.                             <COMMUNITY-document-body>
  630.                 The first line of the COMMUNITY document specifies the
  631.                 <Community-Identifier> to be used in the header of all
  632.                 other documents belonging to the same community.  It is
  633.                 recommended to add a few comment lines to describe the
  634.                 members of this MHS community.
  635.  
  636.  
  637. Eppenberger                           Expires: August 1993   [Page 11]
  638.  
  639. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  640.  
  641.  
  642.       <COMMUNITY-document-body> ::= <Coordination> \
  643.                             {<Macro-definition>}{<Connections>}
  644.       
  645.       <Coordination> ::= <EMail> <Phone> <FAX> \
  646.                             <Mail> <Operation> <File-server>
  647.                 Set of contact information for the coordination point
  648.       
  649.       <File-server> ::= <email-server> [{<FTP-server>}] \
  650.                             [{<FTAM-server>]}
  651.                 All documents must be available at least to the
  652.                 managers of the MHS domains and the RELAYs through an
  653.                 email server.  If FTAM and FTP are also  available, the
  654.                 generation of automated update tools is much easier.
  655.                 It is suggested to have a single server.  If there is
  656.                 only one, knowing a single X.400 OR address will allow
  657.                 you to reach the server.  However for FTP and FTAM more
  658.                 system addresses may be possible depending on the
  659.                 number of available network connections (or service
  660.                 types as they are called in this document).
  661.       
  662.       <email-server> ::= "Mail-server: "<X.400 address> <CR>
  663.                 The email address of the file server.
  664.       
  665.       <FTP-server> ::= "FTP-server: " 'domain name' "; " \
  666.                             'account-name' ["; " 'password'] <CR>
  667.                 In addition to the domain name of the server, an
  668.                 account name and a password is given.  In most cases
  669.                 this will probably be something like "anonymous" and
  670.                 "guest".
  671.                 Some servers request the RFC822 address of the user.
  672.                 This is documented by using the string 'user@domain' as
  673.                 password entry.  The meaning is not to use
  674.                 'user@domain' literally as password while accessing the
  675.                 server (even if this would generally work too since the
  676.                 software often just checks the presence of an @ sign,)
  677.                 but to use ones own RFC822 email address.
  678.       
  679.       <FTAM-server> ::= "FTAM-server: " 'P-address' "; "\
  680.                             <account-name> ["; " 'password'] \
  681.                             ["; X.500 " <DirectoryName>] <CR>
  682.                 The account name is often case sensitive.  Some FTAM
  683.                 server offer anonymous access with the account-name
  684.                 ANON.  Documenting an FTAM server with a Distinguished
  685.                 Name is only allowed if the server is registered in the
  686.                 directory.
  687.       
  688.       <Macro-definition> ::= "Macro: " 'Macro name' " " \
  689.                             'Macro value' <CR>
  690.                 Presentation addresses without the usage of macros are
  691.                 generally unreadable.  RFC1278 suggests a few macros.
  692.                 All macros which are allowed in a community must be
  693.  
  694.  
  695. Eppenberger                           Expires: August 1993   [Page 12]
  696.  
  697. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  698.  
  699.  
  700.                 defined in the COMMUNITY document.  It is recommended
  701.                 to use the proposed macros in RFC1278 and add new ones
  702.                 if necessary:
  703.                 Macro: Int-X25(80)        TELEX+00728722+X.25(80)+01+
  704.                 Macro: Janet-X25(80)      TELEX+00728722+X.25(80)+02+
  705.                 Macro: Internet-RFC-1006  TELEX+00728722+RFC-1006+03+
  706.       
  707.       <Connections> ::= {<mandatory-service>} \
  708.                             {[<optional-service>]}
  709.                 Note that at least one mandatory service type is
  710.                 needed.
  711.       
  712.       <mandatory-service> ::= "Mandatory-Service: " \
  713.                             <Service-type> <CR>
  714.       
  715.       <optional-service> ::= "Optional-Service: " \
  716.                             <Service-type> <CR>
  717.   
  718.   
  719.   5.3 The RELAY document
  720.       
  721.       <RELAY-document> ::= <Community-Identifier> \
  722.                             <Update-info> \
  723.                             <RELAY-document-Identifier> \
  724.                             <RELAY-document-body>
  725.                 A RELAY document contains the full description of a
  726.                 single RELAY.  Only one community is allowed.  Since
  727.                 some of the information is community dependent, it
  728.                 would not be easily possible to have a single RELAY
  729.                 document used in different communities.
  730.       
  731.       <RELAY-document-Identifier> ::= "RELAY:  <UniqueRELAYkey> <CR>
  732.       
  733.       <RELAY-document-body> ::= <Status> <connection-info> \
  734.                             <contact-info>
  735.       
  736.       <Status> ::= "Status: " ("primary" | "secondary")
  737.                 This defines if the RELAY has 'primary' or 'secondary'
  738.                 status.  See section 4.3 and 6 for more information.
  739.       
  740.       <connection-info> ::= <password> <RTS> \
  741.                             {<called-connection><calling-connection>}\
  742.                             [<system>] \
  743.                             [<local-domain>] \
  744.                             [<echo-server>]
  745.                 More than one set of connection information may be
  746.                 present for RELAYs supporting several networks and
  747.                 protocol stacks.
  748.       
  749.  
  750.  
  751.  
  752.  
  753. Eppenberger                           Expires: August 1993   [Page 13]
  754.  
  755. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  756.  
  757.  
  758.       <password> ::= "Password: " \
  759.                             ("secret" | "none" | \
  760.                             "value=\"" 'password' "\"") <CR>
  761.                 If the keyword none is present, then no password is
  762.                 sent with the MTAname when this MTA initiates an RTS
  763.                 connection or responds to an incoming connection.
  764.                 Password: none
  765.                 
  766.                 If the keyword secret is present, then the connection
  767.                 needs a password which is not made publicly available.
  768.                 (For example, a community might keep a list of the
  769.                 passwords at the central coordination point.  The list
  770.                 would then be faxed to the RELAY managers.)
  771.                 Password: secret
  772.                 
  773.                 A password must be documented using the
  774.                 value="password" notation.  The double quotes around
  775.                 the password are needed, consider the case of a single
  776.                 blank as a password.
  777.                 Password: value=" "
  778.                 Password: value="nume-n-ine"
  779.       
  780.       <RTS> ::= <dialog-mode> \
  781.                             [<checkpoint-size> <window-size>]
  782.       
  783.       <dialog-mode> ::= "RTS-dialog-mode: " \
  784.                             ("TWA" | "MONOLOGUE") <CR>
  785.       
  786.       <checkpoint-size> ::= "RTS-checkpoint-size: " \
  787.                             'checkpoint size' <CR>
  788.       
  789.       <window-size> ::= "RTS-window-size: " \
  790.                             'window size' <CR>
  791.       
  792.       <called-connection> ::= "Called-address: " \
  793.                             <Service-type> "; " \
  794.                             <P-address> "; " <MTS> \
  795.                             [<Service-priority>] <CR>
  796.       
  797.       <MTS> ::= "MTS-T" | "MTS-TP" | "MTS-TP-84"
  798.                 MTS-T:     mts-transfer
  799.                 MTS-TP:    mts-transfer-protocol
  800.                 MTS-TP-84: mts-transfer-protocol-1984
  801.                 See ISO 10021-6, Section 3, chapter 11.1 for more
  802.                 details on this matter.  X.400(84) systems only support
  803.                 mts-transfer-protocol-1984.
  804.       
  805.       <Service-priority> ::= "; " 'Integer 0..99'
  806.                 The lowest Integer corresponds to the highest priority
  807.                 as in DNS.  It is possible to set different priorities
  808.                 for each service type.  This may be chosen, for
  809.  
  810.  
  811. Eppenberger                           Expires: August 1993   [Page 14]
  812.  
  813. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  814.  
  815.  
  816.                 example, to distribute the load amongst different
  817.                 networks according to their available bandwidth.
  818.       
  819.       <calling-connection> ::= "Calling-address: " \
  820.                             <Service-type> "; " \
  821.                             <P-address> <CR>
  822.                 Since called and calling network addresses may differ
  823.                 in certain configurations and some X.400 systems do
  824.                 validation on calling network addresses, it is
  825.                 important to have this information in the RELAY
  826.                 document.  (Note: a calling X.121 address might change
  827.                 if the X.25 switch is reconfigured.  This will stop a
  828.                 RELAY from connecting to other RELAYs using address
  829.                 validation without having changed anything at the
  830.                 higher layers!)
  831.       
  832.       <system> ::= "System: HW=" 'computer type' "; " \
  833.                             "OS=" 'operating system' "; " \
  834.                             "SW=" 'MHS  software' <CR>
  835.                 It is optional to provide HW/SW information.
  836.                 Experience, however, has shown that a number of
  837.                 communication problems were more easily identified and
  838.                 solved with this information present and up-to-date.
  839.       
  840.       <local-domain> ::= "LocalDomain: " <MHS-subtree> <CR>
  841.                 This is a useful but optional extension to the
  842.                 documentation.
  843.                 The <MHS-subtree> is local to the RELAY.  The <MHS-
  844.                 subtree> attributes might be used together with
  845.                 S=nosuchuser; to do connectivity and availability
  846.                 tests.
  847.       
  848.       <echo-server> ::= "EchoServer: " <X.400 address> <CR>
  849.                 Some of the RELAYs might offer an echo server
  850.                 functionality.  It does make sense to document this in
  851.                 the RELAY document for test purpose.  This field is
  852.                 optional.
  853.       
  854.       <contact-info> ::= {"Administrator: " <UniquePersonKey> <CR>}
  855.                 The contact details for the RELAY administrator can be
  856.                 found in the appropriate PERSON document.  It is
  857.                 possible to document a whole team using a distribution
  858.                 list if this is desired.  It is generally better to
  859.                 document one or more 'real' persons.
  860.   
  861.   
  862.   5.4 The DOMAIN document
  863.       
  864.       <DOMAIN-document> ::= <Community-Identifier> \
  865.                             <Update-info> \
  866.                             <DOMAIN-document-body>
  867.  
  868.  
  869. Eppenberger                           Expires: August 1993   [Page 15]
  870.  
  871. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  872.  
  873.  
  874.       <DOMAIN-document-body>::= {<Domain-entry>} <responsible> \
  875.                             {<Relay>}
  876.       
  877.       <Domain-entry> ::= "Domain: " <OR-matching> <MHS-subtree> <CR>
  878.                 Note that it is not allowed to have equal <Domain-
  879.                 entry> lines in different DOMAIN documents belonging to
  880.                 the same MHS community.  A Domain-entry line can only
  881.                 appear in one DOMAIN document.
  882.       
  883.       <OR-matching> ::=  ( "* " | "= " )
  884.                 This qualifier defines how the following OR address
  885.                 attributes should be handled for the routing algorithm.
  886.                 If a '*' is present, a destination address of a message
  887.                 is matched by the "Domain:" entry if at least the OR
  888.                 address attributes in the "Domain:" entry are equal to
  889.                 the destination address.
  890.                 If a "=" is present, a destination address of a message
  891.                 is matched by the "Domain:" entry if there are exactly
  892.                 the same OR attributes in the destination address as in
  893.                 the "Domain:" entry.  (This restriction works for OU4,
  894.                 OU3, OU2, OU1, O, P, A and C only.)
  895.                 Example:
  896.                 a) Domain: * P=switch; A=arcom; C=ch;
  897.                 b) Domain: = P=switch; A=arcom; C=ch;
  898.                 The address S=eppenberger; P=switch; A=arcom; C=ch;
  899.                 matches both cases, a) and b).
  900.                 The address S=eppenberger; O=unibe; P=switch; A=arcom;
  901.                 C=ch; matches only case a).
  902.       
  903.       <responsible> ::= {"Administrator: " <UniquePersonKey> <CR>}
  904.                 This is the person responsible for the listed domains.
  905.                 His task is to get the agreement of the relaying RELAYs
  906.                 and keep the DOMAIN document up-to-date.  This person
  907.                 is the only one authorized to make changes to this
  908.                 document.  Note that multiple administrators may be
  909.                 listed.
  910.       
  911.       <Relay> ::=         "Relay: " \
  912.                             'UniqueRELAYkey' "; " \
  913.                             <RELAY-Priority> <CR>
  914.                 The priority is used to define the sequence in which
  915.                 different RELAYs may be tried in case of failure.  A
  916.                 lower integer corresponds to a higher priority as in
  917.                 DNS.  Priorities 0..49 are used to indicate backup
  918.                 RELAYs.  Priorities 50..99 are used for RELAYs not
  919.                 acting as backup but as relay service provider for a
  920.                 network service type not supported by the main RELAY.
  921.       
  922.       <RELAY-Priority> ::= <Integer 0..99>
  923.   
  924.   
  925.  
  926.  
  927. Eppenberger                           Expires: August 1993   [Page 16]
  928.  
  929. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  930.  
  931.  
  932.   5.5 The PERSON document
  933.       
  934.       <PERSON-document> ::= <Community-Identifier> \
  935.                             <Update-info> \
  936.                             <PERSON-document-identifier> \
  937.                             <PERSON-document-body>
  938.       
  939.       <PERSON-document-identifier> ::= "Key: " <UniquePersonKey> <CR>
  940.       
  941.       <PERSON-document-body>::= <Name> {<EMail>} {<RFC822>} \
  942.                             <Phone> <Fax> <Mail> <Operation>
  943.       
  944.       <Name>  ::= "Name: " 'name of person' <CR>
  945.                 The name of the person is given.  The issue of the
  946.                 character set problem is not addressed in this
  947.                 document.  Especially international communities should
  948.                 restrict themselves to IA5 or ASCII.
  949.       
  950.       <RFC822> ::= "RFC822: " <RFC-822-address> <CR>
  951.                 This is the RFC-822 address of the person.  It is often
  952.                 a big help to know the RFC822 address of someone, for
  953.                 example if the X.400 system is not reachable.  This is
  954.                 also the reason why it is possible to provide multiple
  955.                 OR and RFC822 addresses.  The first one is considered
  956.                 the primary one.
  957.  
  958.  
  959. 6 Routing rules
  960.     
  961.     All the users within the MHS community have the right to send
  962.   messages to each other.  The general agreement is that the RELAY
  963.   infrastructure is used according to the following routing rules.
  964.   More direct connections based on bilateral agreements are fully
  965.   accepted.
  966.     
  967.     A primary or secondary RELAY must allow incoming connections from
  968.   all other primary and secondary RELAYs with a common stack.  Primary
  969.   RELAYs must be able to connect to all other primary RELAYs which
  970.   share a common stack.  A secondary RELAY must connect to at least
  971.   one primary RELAY.
  972.     
  973.     A message arriving at a RELAY must either be sent to the next
  974.   RELAY based on the DOMAIN documents of the MHS community or it is
  975.   sent to an MTA closer to the destination based on local routing
  976.   decisions.  The following algorithm must be used when forwarding a
  977.   message to the next RELAY:
  978.   
  979.   1 Select the relevant DOMAIN document by searching for a match of
  980.     the Recipient address in the message with the entries in the
  981.     'Domain: ' lines.  Extract the list of RELAYs from the DOMAIN
  982.     document.
  983.  
  984.  
  985. Eppenberger                           Expires: August 1993   [Page 17]
  986.  
  987. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  988.  
  989.  
  990.     If your own RELAY appears in this list, this indicates one of the
  991.     following:
  992.     
  993.     - You offered relay services for another RELAY with higher
  994.       priority.  Continue with step 2 to decide on the next RELAY.
  995.     
  996.     - Your RELAY is the final destination according the DOMAIN
  997.       document of your community.  You need to forward the message to
  998.       the final destination according local routing information.
  999.   
  1000.   2 From the list of RELAYs select those that have at least one common
  1001.     network service type with your own RELAY.
  1002.   
  1003.   3 Now delete all secondary RELAYs from the list where no direct
  1004.     connection is desired.  For remaining RELAYs in the list no
  1005.     difference is made anymore between primary and secondary status.
  1006.   
  1007.   4 Select from this reduced set of RELAYs the one with the highest
  1008.     RELAY-priority.  If there is more than one RELAY having the same
  1009.     priority, then select a RELAY of your choice.  If your own RELAY
  1010.     appears in that list, then you are not allowed to send to a RELAY
  1011.     with lower or equal priority.
  1012.   
  1013.   5 If there are no service-priorities set in the corresponding RELAY
  1014.     document indicating which service type to use, you are free to
  1015.     choose the service type for connecting to the RELAY.  However, if
  1016.     there are specific priorities set then select the service type
  1017.     with the highest priority.
  1018.   
  1019.   6 If the connection fails then try other service types in the
  1020.     sequence of descending priority.
  1021.   
  1022.   7 If no connection works for the selected RELAY, then check in the
  1023.     list for the one with the same priority, if possible, or else
  1024.     select one with the next lower priority.  If there is another
  1025.     RELAY with a RELAY-priority between 0..49, then select it and
  1026.     proceed at step 5.  Without another RELAY to try the currently
  1027.     selected RELAY will be retried.
  1028.   
  1029.   
  1030.   6.1 How to use RELAY-priorities
  1031.       
  1032.       An example helps to explain the usage of RELAY-priorities.
  1033.     Internet/TCP/RFC1006 and Public-X.25/X.25/TP0 are mandatory
  1034.     service types in the community REMOTEmail.  The MHS domain
  1035.     P=REMOTE; A=ARCOM; C=CH; operates MTA-B, only connected to public
  1036.     X.25.  A second RELAY which is connected to both, Internet and
  1037.     public X.25 is needed to offer relay services.  A connection using
  1038.     Internet is considered cheap, somebody else pays the leased lines.
  1039.     Both service types are available at MTA-A.  Since MTA-B is the
  1040.     only RELAY responsible for relaying messages to P=REMOTE; A=ARCOM;
  1041.  
  1042.  
  1043. Eppenberger                           Expires: August 1993   [Page 18]
  1044.  
  1045. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  1046.  
  1047.  
  1048.     C=CH; to the final destination it must have the highest priority.
  1049.       
  1050.       Community: REMOTEmail
  1051.       Domain: * P=REMOTE; A=ARCOM; C=CH;
  1052.       RELAY: P=REMOTE; A=ARCOM; C=CH;MTAname=MTA-B; 90
  1053.       RELAY: P=RELAYC; A=ARCOM; C=CH;MTAname=MTA-C; 30
  1054.       
  1055.                                        __________________________
  1056.       +-------+    X.25     +-------+ (                          )
  1057.       | MTA-A +-------------+ MTA-B +-( P=REMOTE; A=ARCOM; C=CH; )
  1058.       +-------+             +-------+ (__________________________)
  1059.                \           /
  1060.          TCP/IP \         /X.25
  1061.                  +-------+
  1062.                  | MTA-C |
  1063.                  +-------+
  1064.       
  1065.       If MTA-A needs to relay a message for P=REMOTE; A=ARCOM; C=CH;
  1066.     then the rules of chapter 6 are evaluated:
  1067.         
  1068.         1 MTA-B and MTA-C are possible destinations
  1069.         
  1070.         2 MTA-B and MTA-C are reachable from MTA-A
  1071.         
  1072.         3 MTA-B is a primary RELAY (not relevant in this example)
  1073.         
  1074.         4 MTA-B has the highest priority.
  1075.         
  1076.         5 MTA-B doesn't have specific service type lines documented.
  1077.           MTA-A chooses public X.25, since it is the only possibility
  1078.           to connect to MTA-B.
  1079.         
  1080.         6 No other service types are available if the connection
  1081.           fails.
  1082.         
  1083.         7 MTA-C has a priority of 30, it is not a backup RELAY.  MTA-A
  1084.           must spool the message and try to connect directly to MTA-B.
  1085.       
  1086.       The organisation running MTA-A could save money by sending
  1087.     messages for the MHS domain P=REMOTE; A=ARCOM; C=CH; via MTA-C.
  1088.     Since the connection between MTA-C and the destination MTA-B is
  1089.     also expensive, the organisation running MTA-C would have to pay
  1090.     for external relay traffic.  Setting a lower priority for MTA-C
  1091.     forces the other RELAYs with public X.25 connectivity to take
  1092.     their share of the cost.
  1093.       
  1094.       Note that forcing other RELAYs to use a specific stack should be
  1095.     avoided wherever possible by offering RELAYs with equal priority
  1096.     for all mandatory network services.  This can be an important
  1097.     financial issue for MHS communities spanning several
  1098.     organisations, it is not relevant in general for an MHS community
  1099.  
  1100.  
  1101. Eppenberger                           Expires: August 1993   [Page 19]
  1102.  
  1103. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  1104.  
  1105.  
  1106.     within a single organisation.
  1107.   
  1108.   
  1109.   6.2 How to use RELAY-priorities for backup RELAYS
  1110.       
  1111.       Two RELAYs offer real backup connectivity for the MHS domain
  1112.     P=REMOTE; A=ARCOM; C=CH;.  It is therefore possible to set RELAY
  1113.     priorities in the range of 50..99 for both RELAYs.  MTA-B will be
  1114.     the preferred one since it has the higher priority.  If the
  1115.     connection to MTA-B fails, a sending RELAY may immediately try to
  1116.     connect to MTA-C.
  1117.       
  1118.       Community: REMOTEmail
  1119.       Domain: * P=REMOTE; A=ARCOM; C=CH;
  1120.       RELAY: P=REMOTE; A=ARCOM; C=CH;MTAname=MTA-B; 90
  1121.       RELAY: P=REMOTE; A=ARCOM; C=CH;MTAname=MTA-C; 80
  1122.       
  1123.                                        __________________________
  1124.       +-------+             +-------+ (                          )
  1125.       | MTA-A +-------------+ MTA-B +-( P=REMOTE; A=ARCOM; C=CH; )
  1126.       +-------+             +-------+ (__________________________)
  1127.                \                     /
  1128.                 \           +-------+
  1129.                  -----------+ MTA-C |
  1130.                             +-------+
  1131.   
  1132.   
  1133.   6.3 Load Sharing
  1134.       
  1135.       It is possible to set equal priorities to do some sort of load
  1136.     sharing.  However, most implementations are not able to do random
  1137.     selection of RELAYs with equal priorities but have a fixed
  1138.     configuration.  If load sharing is really needed then it is
  1139.     suggested to split up the MHS domain into several MHS subtrees and
  1140.     document them separately with a set of RELAYs with different
  1141.     priorities.
  1142.       
  1143.       An example is provided for illustration of the first possibility
  1144.     with equal RELAY-priorities:
  1145.       
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159. Eppenberger                           Expires: August 1993   [Page 20]
  1160.  
  1161. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  1162.  
  1163.  
  1164.       Community: REMOTEmail
  1165.       Domain: * P=REMOTE; A=ARCOM; C=CH;
  1166.       RELAY: P=REMOTE; A=ARCOM; C=CH;MTAname=MTA-B; 90
  1167.       RELAY: P=REMOTE; A=ARCOM; C=CH;MTAname=MTA-C; 90
  1168.           _               __________________________
  1169.            )  +-------+  (                          )
  1170.            )--+ MTA-B +--( P=REMOTE; A=ARCOM; C=CH; )
  1171.            )  +-------+  (__________________________)
  1172.            )            /
  1173.            )  +-------+/
  1174.            )--+ MTA-C |
  1175.           _)  +-------+
  1176.       
  1177.       And here is an example where the MHS domain
  1178.     C=CH;ADMD=ARCOM;PRMD=REMOTE;O=Big-Org is documented with its own
  1179.     DOMAIN document: Note that both RELAYs serve as backup RELAYs.
  1180.       
  1181.       Community: REMOTEmail
  1182.       Domain: * P=REMOTE; A=ARCOM; C=CH;
  1183.       RELAY: P=REMOTE; A=ARCOM; C=CH;MTAname=MTA-B; 90
  1184.       RELAY: P=REMOTE; A=ARCOM; C=CH;MTAname=MTA-C; 80
  1185.       
  1186.       Community: REMOTEmail
  1187.       Domain: * O=Big-Org;P=REMOTE; A=ARCOM; C=CH;
  1188.       RELAY: P=REMOTE; A=ARCOM; C=CH;MTAname=MTA-C; 90
  1189.       RELAY: P=REMOTE; A=ARCOM; C=CH;MTAname=MTA-B; 80
  1190.           _               __________________________
  1191.            )  +-------+  (                          )
  1192.            )--+ MTA-B +--( P=REMOTE; A=ARCOM; C=CH; )
  1193.            )  +-------+  (__________________________)
  1194.            )           \/
  1195.            )           /\ ____________________________________
  1196.            )  +-------+  (                                    )
  1197.            )--+ MTA-C |--( O=Big-Org;P=REMOTE; A=ARCOM; C=CH; )
  1198.           _)  +-------+  (____________________________________)
  1199.  
  1200.  
  1201. 7 Open issues
  1202.     
  1203.     Currently there are about 40 RELAYs within the COSINE-MHS service.
  1204.   A rough guess is that a network with about 60 RELAYs is still
  1205.   manageable provided there are automated tools for MTA configuration.
  1206.   If there are more MTAs applying for RELAY status in an MHS
  1207.   community, then either an X.500 based solution should be ready or a
  1208.   core set of about 30 well operated super-RELAYs should form a
  1209.   backbone, documented within a specific MHS community.
  1210.     
  1211.     Since the RELAY document contains information about the supported
  1212.   X.400 version (84 or 88), it is possible for an X.400(88) system to
  1213.   select with higher priority an (88)RELAY.  The rules in chapter 6
  1214.   could be modified to select X.400(88) systems first if the sending
  1215.  
  1216.  
  1217. Eppenberger                           Expires: August 1993   [Page 21]
  1218.  
  1219. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  1220.  
  1221.  
  1222.   RELAY is an (88) system itself.  The issue of how to establish an
  1223.   X.400(88) RELAY infrastructure within an MHS community is for
  1224.   further study.
  1225.  
  1226.  
  1227. Security Considerations
  1228.     
  1229.     Security considerations are not discussed in this memo.
  1230.  
  1231.  
  1232. Appendix A Document examples for the COSINE-MHS community
  1233.     
  1234.     Instead of creating artificial documents to show an example
  1235.   document set, this appendix contains extracts from a real
  1236.   operational X.400 service.  The research and development community
  1237.   in Europe has used X.400 for several years.  This proposal was
  1238.   initially written to address this community only and solve the
  1239.   urgent routing and coordination problems.  Contributions from
  1240.   different experts have made it more flexible and therefore hopefully
  1241.   useful for other MHS communities.
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275. Eppenberger                           Expires: August 1993   [Page 22]
  1276.  
  1277. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  1278.  
  1279.  
  1280. Appendix A1 The COMMUNITY document
  1281.   
  1282.   Community: COSINE-MHS
  1283.   # The COSINE-MHS service is a MHS community formed by the European
  1284.   # academic and research networks with additional contacts in all
  1285.   # other continents.
  1286.   #
  1287.   # The coordination is done by the COSINE-MHS project team.
  1288.   #
  1289.   Update: FORMAT=V3; DATE=921218; START=930201
  1290.   #
  1291.   Address: S=Project-Team; O=SWITCH; P=SWITCH; A=ARCOM; C=CH;
  1292.   #
  1293.   Phone: +41 1-262-31-43
  1294.   Fax:   +41 1-261-81-88
  1295.   #
  1296.   Mail:  SWITCH Head Office /
  1297.          MHS Coordination Service /
  1298.          Limmatquai 138 /
  1299.          CH-8001 Zurich /
  1300.          Switzerland
  1301.   #
  1302.   Reachable: 09:00-12:00; 14:00-17:30; UTC+1
  1303.   #
  1304.   Mail-server: S=mhs-server; O=switch; OU1=nic;
  1305.                P=SWITCH; A=ARCOM; C=CH;
  1306.   FTP-server:  nic.switch.ch; cosine; user@domain
  1307.   #
  1308.   Macro: Int-X25(80)        TELEX+00728722+X.25(80)+01+
  1309.   Macro: Internet-RFC-1006  TELEX+00728722+RFC-1006+03+
  1310.   Macro: IXI                TELEX+00728722+X.25(80)+06+
  1311.   #
  1312.   Mandatory-Service: Public-X.25/X.25/TP0
  1313.   # The public X.25 network.  X.25 is supported in most X.400
  1314.   # applications and mandatory in X.400 anyhow.
  1315.   #
  1316.   Mandatory-Service: Internet/TCP/RFC1006
  1317.   # The Internet, standing for the global TCP/IP network of the
  1318.   # research and development community
  1319.   # RFC1006 is considered a solution to ease migration to OSI. It will
  1320.   # be replaced by TP4/CLNS as soon as a reliable service is
  1321.   # available.
  1322.   #
  1323.   Optional-Service: Int-CLNS/CLNS/TP4
  1324.   # The RARE Connectionless pilot service.  Current participants are
  1325.   # NORDUnet, SURFnet, CERN, NSFnet and SWITCH.
  1326.   #
  1327.   Optional-Service: EMPB-X.25/X.25/TP0
  1328.   # The International X.25 Infrastructure covering most countries in
  1329.   # Europe.  The absence of volume tariffs make it a preferred choice.
  1330.  
  1331.  
  1332.  
  1333. Eppenberger                           Expires: August 1993   [Page 23]
  1334.  
  1335. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  1336.  
  1337.  
  1338. Appendix A2 Example of a RELAY document
  1339.   
  1340.   Community: COSINE-MHS
  1341.   #
  1342.   Update: FORMAT=V3; DATE=921218; START=930201
  1343.   #
  1344.   RELAY: P=SWITCH; A=ARCOM; C=CH; MTAname=chx400.switch.ch
  1345.   #
  1346.   Status: primary
  1347.   #
  1348.   Password: none
  1349.   RTS-dialog-mode: MONOLOGUE
  1350.   #
  1351.   Called-address:  Public-X.25/X.25/TP0;
  1352.                    "591"/Int-X25(80)=22847971014520+CUDF+03010100;
  1353.                    MTS-TP-84
  1354.   Calling-address: Public-X.25/X.25/TP0;
  1355.                    Int-X25(80)=22847971014520;
  1356.   #
  1357.   Called-address:  Internet/TCP/RFC1006;
  1358.                    "591"/Internet-RFC-1006=chx400.switch.ch;
  1359.                    MTS-TP-84
  1360.   Calling-address: Internet/TCP/RFC1006;
  1361.                    Internet-RFC-1006=chx400.switch.ch
  1362.   #
  1363.   Called-address:  EMPB-X.25/X.25/TP0;
  1364.                    "591"/IXI=20432840100520+CUDF+03010100;
  1365.                    MTS-TP-84
  1366.   Calling-address: EMPB-X.25/X.25/TP0;
  1367.                    IXI=20432840100520;
  1368.   #
  1369.   Calling-address: Int-CLNS/CLNS/TP4;
  1370.                    "591"/NS+39756F11111111010000014560AA00040005E100;
  1371.                    MTS-TP-84
  1372.   Called-address:  DCC+756+x11111111010000014560AA00040005E100
  1373.   #
  1374.   # For X.400(88) over CLNS
  1375.   #
  1376.   Calling-address: Int-CLNS/CLNS/TP4;
  1377.                    "592"/NS+39756F11111111010000014560AA00040005E100;
  1378.                    MTS-T
  1379.   Called-address:  DCC+756+x11111111010000014560AA00040005E100
  1380.   #
  1381.   System: HW=SUN 4/690MP; OS=SunOS 4.1.1; SW=PP-6.0
  1382.   #
  1383.   LocalDomain: O=switch; OU1=chx400; P=switch; A=arcom; C=ch;
  1384.   #
  1385.   EchoServer:  S=echo; O=switch; OU1=chx400; P=switch; A=arcom; C=ch;
  1386.   #
  1387.   Administrator: CN=Felix Kugler, O=SWITCH, C=CH
  1388.   Administrator: CN=Christoph Graf, O=SWITCH, C=CH
  1389.  
  1390.  
  1391. Eppenberger                           Expires: August 1993   [Page 24]
  1392.  
  1393. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  1394.  
  1395.  
  1396. Appendix A3 Example of a DOMAIN document
  1397.   
  1398.   Community: COSINE-MHS
  1399.   #
  1400.   Update: FORMAT=V3; DATE=921218; START=930201
  1401.   ##
  1402.   Domain: *     P=SWITCH; A=ARCOM; C=CH;
  1403.   Domain: *     P=SANDOZ; A=ARCOM; C=CH;
  1404.   Domain: *        P=ABB; A=ARCOM; C=CH;
  1405.   Domain: *        P=UBS; A=ARCOM; C=CH;
  1406.   Domain: *      P=ISREC; A=ARCOM; C=CH;
  1407.   Domain: *    P=ALCATEL; A=ARCOM; C=CH;
  1408.   Domain: *        P=ITU; A=ARCOM; C=CH;
  1409.   Domain: * P=OSILABMAIL; A=ARCOM; C=CH;
  1410.   Domain: *        P=WHO; A=ARCOM; C=CH;
  1411.   Domain: *       P=CERN; A=ARCOM; C=CH;
  1412.   Domain: *   P=CERBERUS; A=ARCOM; C=CH;
  1413.   #
  1414.   Administrator: CN=Christoph Graf, O=SWITCH, C=CH
  1415.   Administrator: S=postmaster; O=SWITCH; P=SWITCH; A=ARCOM; C=CH;
  1416.   #
  1417.   RELAY: P=SWITCH; A=ARCOM; C=CH; MTAname=chx400.switch.ch; 0
  1418.   #
  1419.   RELAY: P=SWITCH; A=ARCOM; C=CH; MTAname=vms.switch; 10
  1420.  
  1421.  
  1422. Appendix A4 Example of a PERSON document
  1423.   
  1424.   Community: COSINE-MHS
  1425.   #
  1426.   Update: FORMAT=V3; DATE=921218; START=930201
  1427.   #
  1428.   Key: CN=Christoph Graf, O=SWITCH, C=CH
  1429.   #
  1430.   Name:    Christoph Graf
  1431.   #
  1432.   Address: S=Graf; O=SWITCH; P=SWITCH; A=ARCOM; C=CH;
  1433.   RFC822:  Graf@switch.ch
  1434.   #
  1435.   Phone:   +41 1 2565454
  1436.   Fax:     +41 1 2618133
  1437.   #
  1438.   Mail:    SWITCH Head Office /
  1439.            Christoph Graf /
  1440.            Limmatquai 138 /
  1441.            CH-8001 Zurich /
  1442.            Switzerland
  1443.   #
  1444.   Reachable: 09:00-12:00; 14:00-17:30; UTC+1
  1445.  
  1446.  
  1447.  
  1448.  
  1449. Eppenberger                           Expires: August 1993   [Page 25]
  1450.  
  1451. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  1452.  
  1453.  
  1454. Appendix B  BNF Definitions
  1455.       
  1456.       <called-connection> ::= "Called-address: " \
  1457.                             <Service-type> "; " \
  1458.                             <P-address> "; " <MTS> \
  1459.                             [<Service-priority>] <CR>
  1460.       
  1461.       <calling-connection> ::= "Calling-address: " \
  1462.                             <Service-type> "; " \
  1463.                             <P-address> <CR>
  1464.       
  1465.       <checkpoint-size> ::= "RTS-checkpoint-size: " \
  1466.                             'checkpoint size' <CR>
  1467.       
  1468.       <COMMUNITY-document> ::= <Community-Identifier> \
  1469.                             <Update-info> \
  1470.                             <COMMUNITY-document-body>
  1471.       
  1472.       <COMMUNITY-document-body> ::= <Coordination> \
  1473.                             {<Macro-definition>}{<Connections>}
  1474.       
  1475.       <Community-Identifier> ::= "Community: " \
  1476.                             ('community name' | <DirectoryName>) <CR>
  1477.       
  1478.       <connection-info> ::= <password> <RTS> \
  1479.                             {<called-connection><calling-connection>}\
  1480.                             [<system>] \
  1481.                             [<local-domain>] \
  1482.                             [<echo-server>]
  1483.       
  1484.       <Connections> ::= {<mandatory-service>} \
  1485.                             {[<optional-service>]}
  1486.       
  1487.       <contact-info> ::= {"Administrator: " <UniquePersonKey> <CR>}
  1488.       
  1489.       <Coordination> ::= <EMail> <Phone> <FAX> \
  1490.                             <Mail> <File-server>
  1491.       
  1492.       <Country-Code> ::= 'Two Character Country Code ISO-3166'
  1493.       
  1494.       <dialog-mode> ::= "RTS-dialog-mode: " \
  1495.                             ("TWA" | "MONOLOGUE") <CR>
  1496.       
  1497.       <DirectoryName> ::= 'Distinguished Name'
  1498.       
  1499.       <DOMAIN-document> ::= <Community-Identifier> \
  1500.                             <Update-info> \
  1501.                             <DOMAIN-document-body>
  1502.       
  1503.       <DOMAIN-document-body>::= {<Domain-entry>} <responsible> \
  1504.                             {<Relay>}
  1505.  
  1506.  
  1507. Eppenberger                           Expires: August 1993   [Page 26]
  1508.  
  1509. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  1510.  
  1511.  
  1512.       <Domain-entry> ::= "Domain: " <OR-matching> <MHS-subtree> <CR>
  1513.       
  1514.       <echo-server> ::= "EchoServer: " <X.400 address> <CR>
  1515.       
  1516.       <EMail> ::= "Address: " <X.400 address> <CR>
  1517.       
  1518.       <email-server> ::= "Mail-server: "<X.400 address> <CR>
  1519.       
  1520.       <extension> ::= 'local extension'
  1521.       
  1522.       <Fax> ::= "Fax: " <tel-no-list> <CR>
  1523.       
  1524.       <File-server> ::= <email-server> [{<FTP-server>}] \
  1525.                             [{<FTAM-server>]}
  1526.       
  1527.       <FTAM-server> ::= "FTAM-server: " 'P-address' "; "\
  1528.                             <account-name> ["; " 'password'] \
  1529.                             ["; X.500 " <DirectoryName>] <CR>
  1530.       
  1531.       <FTP-server> ::= "FTP-server: " 'domain name' "; " \
  1532.                             'account-name' ["; " 'password'] <CR>
  1533.       
  1534.       <int-pref> ::= 'international prefix'
  1535.       
  1536.       <local-domain> ::= "LocalDomain: " <MHS-subtree> <CR>
  1537.       
  1538.       <Macro-definition> ::= "Macro: " 'Macro name' " " \
  1539.                             'Macro value' <CR>
  1540.       
  1541.       <Mail> ::= "Mail: " 'postal address information' <CR>
  1542.       
  1543.       <mandatory-service> ::= "Mandatory-Service: " \
  1544.                             <Service-type> <CR>
  1545.       
  1546.       <MHS-subtree> ::= ["O=" 'Organization-name' "; "] \
  1547.                             [[[["OU1="'OrganizationalUnit-name'"; "]\
  1548.                             "OU2=" 'OrganizationalUnit-name' "; "] \
  1549.                             "OU3=" 'OrganizationalUnit-name' "; "] \
  1550.                             "OU4=" 'OrganizationalUnit-name' "; "] \
  1551.                             ["P=" 'PRMDname' "; "] \
  1552.                             "A=" 'ADMDname' "; " \
  1553.                             "C=" <Country-Code> ";"
  1554.       
  1555.       <MTS> ::= "MTS-T" | "MTS-TP" | "MTS-TP-84"
  1556.       
  1557.       <Name>  ::= "Name: " 'name of person' <CR>
  1558.       
  1559.       <national number> ::= 'national telephone number'
  1560.       
  1561.       <Network-name> ::= 'Name of a network'
  1562.       
  1563.  
  1564.  
  1565. Eppenberger                           Expires: August 1993   [Page 27]
  1566.  
  1567. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  1568.  
  1569.  
  1570.       <Network-service> ::= 'Name of a network service'
  1571.       
  1572.       <Operation> ::= "Reachable: "  {<time> "-" <time> "; "} \
  1573.                             <Time-zone>
  1574.       
  1575.       <optional-service> ::= "Optional-Service: " \
  1576.                             <Service-type> <CR>
  1577.       
  1578.       <OR-matching> ::=  ( "* " | "= " )
  1579.       
  1580.       <P-address> ::= 'String encoded Presentation Address'
  1581.       
  1582.       <password> ::= "Password: " \
  1583.                             ("secret" | "none" | \
  1584.                             "value=\"" 'password' "\"") <CR>
  1585.       
  1586.       <PERSON-document> ::= <Community-Identifier> \
  1587.                             <Update-info> \
  1588.                             <PERSON-document-identifier> \
  1589.                             <PERSON-document-body>
  1590.       
  1591.       <PERSON-document-identifier> ::= "Key: " <UniquePersonKey> <CR>
  1592.       
  1593.       <PERSON-document-body>::= <Name> {<EMail>} {<RFC822>} \
  1594.       
  1595.       <Phone> ::= "Phone: " <tel-no-list> <CR>
  1596.       
  1597.       <Relay> ::=         "Relay: " \
  1598.                             'UniqueRELAYkey' "; " \
  1599.                             <RELAY-Priority> <CR>
  1600.       
  1601.       <RELAY-document> ::= <Community-Identifier> \
  1602.                             <Update-info> \
  1603.                             <RELAY-document-Identifier> \
  1604.                             <RELAY-document-body>
  1605.       
  1606.       <RELAY-document-body> ::= <Status> <connection-info> \
  1607.                             <contact-info>
  1608.       
  1609.       <RELAY-document-Identifier> ::= "RELAY:  <UniqueRELAYkey> <CR>
  1610.       
  1611.       <RELAY-Priority> ::= <Integer 0..99>
  1612.       
  1613.       <responsible> ::= {"Administrator: " <UniquePersonKey> <CR>}
  1614.                             <Phone> <Fax> <Mail> <Operation>
  1615.       
  1616.       <RFC822> ::= "RFC822: " <RFC-822-address> <CR>
  1617.       
  1618.       <RTS> ::= <dialog-mode> \
  1619.                             [<checkpoint-size> <window-size>]
  1620.       
  1621.  
  1622.  
  1623. Eppenberger                           Expires: August 1993   [Page 28]
  1624.  
  1625. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  1626.  
  1627.  
  1628.       <Service-priority> ::= "; " 'Integer 0..99'
  1629.       
  1630.       <Service-type> ::= <Network-name> "/" \
  1631.                             <Network-service> "/" \
  1632.                             <Transport-Protocol>
  1633.       
  1634.       <Status> ::= "Status: " ("primary" | "secondary")
  1635.       
  1636.       <system> ::= "System: HW=" 'computer type' "; " \
  1637.                             "OS=" 'operating system' "; " \
  1638.                             "SW=" 'MHS  software' <CR>
  1639.       
  1640.       <tel-no-list> ::= <tel-number> [{"; " <tel-number>}]
  1641.       
  1642.       <tel-number> ::=  {"+" <int-pref> " " <national number> \
  1643.                             [" x" <extension>]}
  1644.       
  1645.       <time> ::= 'hh:mm'
  1646.       
  1647.       <Time-zone> ::= ("UTC+" | "UTC-") 'hours'
  1648.       
  1649.       <Transport-Protocol> ::= 'Name of a transport protocol'
  1650.       
  1651.       <UniquePersonKey> ::= (<X.400 address> | <DirectoryName> )
  1652.       
  1653.       <UniqueRELAYkey> ::= (([ "P=" 'PRMDname' "; " ] \
  1654.                             ["A=" 'ADMDname' "; " ] \
  1655.                             "C=" <Country-Code> "; " \
  1656.                             "MTAname=" 'MTAname')
  1657.                             | <DirectoryName> )
  1658.       
  1659.       <Update-info> ::= "Update: FORMAT=V3; DATE=" 'yymmdd' \
  1660.                             "; START=" 'yymmdd' \
  1661.                             ["; END=" 'yymmdd'] <CR>
  1662.       
  1663.       <window-size> ::= "RTS-window-size: " \
  1664.                             'window size' <CR>
  1665.       
  1666.       <X.400 address> ::= 'OR address, ISO 10021-2 Annex F'
  1667.       
  1668.       <X.400 routing coordination document set> ::= \
  1669.                             <COMMUNITY-document> \
  1670.                             { <RELAY-document> } \
  1671.                             { <DOMAIN-document> } \
  1672.                             { <PERSON-document> }
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681. Eppenberger                           Expires: August 1993   [Page 29]
  1682.  
  1683. INTERNET-DRAFT  Routing Coordination for X.400 Services  February 1993
  1684.  
  1685.  
  1686. Author's Address
  1687.  
  1688.   Urs Eppenberger
  1689.   SWITCH Head Office
  1690.   Limmatquai 138
  1691.   CH-8001 Zurich
  1692.   Switzerland
  1693.  
  1694.   Phone: +41 1 261 8112
  1695.   Fax:   +41 1 261 8133
  1696.  
  1697.   EMail: Eppenberger@switch.ch
  1698.          S=Eppenberger; O=SWITCH; P=SWITCH; A=ARCOM; C=CH;
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739. Eppenberger                           Expires: August 1993   [Page 30]
  1740.